Memristive elements, for example memristors, are devices that may be programmed to different resistive states by applying a programming stimulus, for example a voltage pulse or a current pulse. After programming, the state of the memristive element may be read. The state of the memristive element remains stable long enough to regard the device as non-volatile. A number of memristive elements may be included within a crossbar array in which a number of column lines intersect with a number of row lines, the memristive element being located at the intersection of a column line and a row line. Memristor elements can be used in a variety of applications, including non-volatile solid state memory, programmable logic, signal processing, control systems, pattern recognition, and other applications.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.